﻿using BCEntity.TMS.SpecificServiceType;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace BCData.TMS.SpecificServiceType
{
    public interface ISpecificServiceTypeData
    {
        /// <summary>
        /// 添加新特殊服务类型纪录
        /// </summary>
        /// <param name="specificServiceTypeEntity"></param>
        /// <returns></returns>
        Task<SpecificServiceTypeEntity> InsertAsync(SpecificServiceTypeEntity entity);

        /// <summary>
        /// 修改特殊服务类型记录
        /// </summary>
        /// <param name="specificServiceTypeEntity"></param>
        /// <returns></returns>
        Task<SpecificServiceTypeEntity> UpdateAsync(SpecificServiceTypeEntity entity);


        /// <summary>
        /// 删除特殊服务类型记录
        /// </summary>
        /// <param name="specificServiceTypeId"></param>
        /// <returns></returns>
        Task<bool> DeleteAsync(int specificServiceTypeId);

        /// <summary>
        /// 获取特殊服务类型记录
        /// </summary>
        /// <param name="specificServiceTypeId"></param>
        /// <returns></returns>
        Task<SpecificServiceTypeEntity> GetEntityAsync(int specificServiceTypeId);

        /// <summary>
        /// 获取全部记录 分页
        /// </summary>
        /// <param name="isEnabled"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        Task<(IEnumerable<SpecificServiceTypeEntity>, int)> GetListAsync(bool? isEnabled,int pageIndex, int pageSize);

        /// <summary>
        /// 获取全部记录
        /// </summary>
        /// <param name="isEnabled"></param>
        /// <returns></returns>
        Task<IEnumerable<SpecificServiceTypeEntity>> GetOnlyListAsync(bool? isEnabled);
    }
}